import request from '@/utils/request'
import { getToken } from '@/utils/auth'

// 查询应用列表
export function listApp(query) {
  return request({
    url: '/ai/app/list',
    method: 'get',
    params: query
  })
}

// 查询应用详细
export function getApp(id) {
  return request({
    url: '/ai/app/' + id,
    method: 'get'
  })
}

// 新增应用
export function addApp(data) {
  return request({
    url: '/ai/app',
    method: 'post',
    data: data
  })
}

// 修改应用
export function updateApp(data) {
  return request({
    url: '/ai/app',
    method: 'put',
    data: data
  })
}

// 删除应用
export function delApp(id) {
  return request({
    url: '/ai/app/' + id,
    method: 'delete'
  })
}

// ========== 以下是根据API文档新增的接口 ==========

// 用户创建应用
export function createUserApp(data) {
  return request({
    url: '/ai/app/add',
    method: 'post',
    data: data
  })
}

// 更新应用（用户只能更新自己的应用名称）
export function updateUserApp(data) {
  return request({
    url: '/ai/app/update',
    method: 'post',
    data: data
  })
}

// 删除应用（用户只能删除自己的应用）
export function deleteUserApp(data) {
  return request({
    url: '/ai/app/delete',
    method: 'post',
    data: data
  })
}

// 根据 id 获取应用详情
export function getAppDetail(id) {
  return request({
    url: '/ai/app/get/vo',
    method: 'get',
    params: { id }
  })
}

// 分页获取当前用户创建的应用列表
export function getMyAppList(data) {
  return request({
    url: '/ai/app/my/list/page/vo',
    method: 'get',
    params: data,
  })
}

// 分页获取精选应用列表
export function getGoodAppList(data) {
  return request({
    url: '/ai/app/good/list/page/vo',
    method: 'get',
    params: data,
  })
}

// 应用部署
export function deployApp(data) {
  return request({
    url: '/ai/app/deploy',
    method: 'post',
    data: data
  })
}

// 获取应用的聊天消息记录
export function getChatMessages(appId) {
  return request({
    url: '/ai/app/chat/messages',
    method: 'get',
    params: { appId }
  })
}

// 下载应用代码
export function downloadAppCode(appId) {
  return request({
    url: `/ai/app/download/${appId}`,
    method: 'get',
    responseType: 'blob'
  })
}

// 获取应用构建状态
export function getBuildStatus(appId) {
  return request({
    url: `/ai/app/build/status/${appId}`,
    method: 'get'
  })
}
